/**
*
*
*\author Isabel Martín Herrero 48539974 S
*
*
**/

#include <iostream>
#include "Lienzo.h"

/**
*\file DibujoSVG.h
*\brief Archivo .h de la clase DibujoSVG
*Archivo que contiene la declaración la clase DibujoSVG
*
**/
using namespace std;

#ifndef _PATATA_H_
#define _PATATA_H_



class ExceptionSVG;


/** \brief Clase DibujoSVG
 *
 * La clase DibujoSVG permite crear, destruir y modificar objetos de tipo DibujoSVG.Un objeto DibujoSVG  tiene los atributos privados instancia (DibujoSVG), fentrada (string), fsalida (string) y lienzo (Lienzo) 
 */
class DibujoSVG
{
	private:
		/** \brief Miembro instancia de la clase DibujoSVG
		*
		* static DibujoSVG*, que contiene un  puntero al único objeto de la clase
		*/
		static DibujoSVG* instancia;
		
		/** \brief Miembro fentrada de la clase DibujoSVG
		*
		* String fentrada, que contiene el nombre del fichero de entrada
		*/
 		string fentrada;
		
		/** \brief Miembro fsalida de la clase DibujoSVG
		*
		* String fsalida, que contiene el nombre del fichero de salida
		*/
 		string fsalida;
		
		/** \brief Constructor (privado) de DibujoSVG.
		*
		* Crea un objeto de tipo DibujoSVG sin parámetros. Es privado.
		*/
		DibujoSVG();
		
		/** \brief Miembro lienzo de la clase DibujoSVG
		*
		* Lienzo lienzo, que contiene un lienzo
		*/
		Lienzo lienzo;

	public:
		/** \brief Miembro MIN_VALOR de la clase DibujoSVG
		*
		* Constante estática MIN_VALOR, de tipo float. Contiene el minimo valor que puede tomar un valor real.
		*/
		static const float MIN_VALOR;
		
		/** \brief Miembro MAX_VALOR de la clase DibujoSVG
		*
		* Constante estática MAX_VALOR, de tipo float. Contiene el máximo valor que puede tomar un valor real.
		*/
		static const float MAX_VALOR;
		
		/** \brief Miembro ERR_VALOR de la clase DibujoSVG
		*
		* Constante estática ERR_VALOR, de tipo float. Contiene el valor "de error" para números reales.
		*/
		static const float ERR_VALOR;
		
		/** \brief Destructor de la clase DibujoSVG
		*
		* Libera la memoria ocupada por un objeto de tipo DibujoSVG
		* 
		*/
		~DibujoSVG();
		
		/** \brief Método getInstancia de la clase DibujoSVG
		*
		* Devuelve un puntero al único objeto de la clase. Si éste no existe, lo crea
		* \return Devuelve un puntero a DibujoSVG.
		*/
 		static DibujoSVG* getInstancia();
		
		/** \brief Método setEntrada de la clase DibujoSVG
		*
		* Asigna valor a fentrada, que es el nombre del fichero de entrada
		* \param n Nuevo nombre que tomará el fichero de entrada. 
		* \return Devuelve void.
		*/
		void setEntrada(string n);
		
		/** \brief Método setSalidaa de la clase DibujoSVG
		*
		* Asigna valor a fsalida, que es el nombre del fichero de salida
		* \param n2 Nuevo nombre que tomará el fichero de salida. 
		* \return Devuelve void.
		*/
		void setSalida(string n2);
		
		/** \brief Método getInstancia de la clase DibujoSVG
		*
		* Contiene el código de la aplicación
		* \return Devuelve void.
		*/
		void ejecutar();

};

#endif
